home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gamers Delight 2
/
Gamers Delight 2.iso
/
Aminet
/
game
/
2play
/
Tactrix.lha
/
Tactrix!.bas
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1994-11-29
|
24KB
|
1,135 lines
prelims:
CLEAR,100000,2000
DIM bored(11,11),buttonplate(4000),peesname$(7)
DIM butx1(31),butx2(31),buty1(31),buty2(31)
DIM bwrapnoid(288),bdiaganoid(288),bjerk(288)
DIM bjumpnar(288),bverticon(288),chip(288)
DIM bking(288),bregeneroid(288),blank(288)
DIM rwrapnoid(288),rdiaganoid(288),rjerk(288)
DIM rjumpnar(288),rverticon(288),bhilite(288)
DIM rking(288),rregeneroid(288),rhilite(288)
SCREEN 2,640,200,4,2
WINDOW 2,"Tactrix! © 1994 Hard Core Game Design",,28,2
PALETTE 0,0,0,0 :REM black
PALETTE 1,1,1,1 :REM white
PALETTE 2,0.4,0.4,1 :REM Blue
PALETTE 3,1,0.2,0.2 :REM red
PALETTE 4,0.4,0.4,0.4 :REM gray
PALETTE 5,0.33,0.87,0 :REM green
PALETTE 6,0.8,0,0.93 :REM purple
PALETTE 7,0.6,0.6,0.6 :REM light gray
PALETTE 8,0,0.9375,0.8125 :REM cyan
start:
t=0:t1=0:x=0:ox=0:y=0:oy=0:legal=0:oops=0
restart=0:mx=0:my=0:a=0:winner=0:didit=0
but1=0:but2=0:pees=0:opees=0:owner=0:pl=0
oowner=0:dx=0:dy=0:buypees=0:cost=0:tutor=0
putpees=0:putowner=0:putx=0:puty=0:cx=0:cy=0
peesname$(1)="King"
peesname$(2)="Regeneroid"
peesname$(3)="Diaganoid"
peesname$(4)="Verticon"
peesname$(5)="Wrapnoid"
peesname$(6)="Jumpnar"
peesname$(7)="Jerk"
GOSUB definedapeeses
GOSUB definedabuttons
drawdabored:
FOR x=19 TO 319 STEP 30
LINE(x,10)-(x,160),4
LINE(x+1,10)-(x+1,160),4
NEXT
FOR y=10 TO 160 STEP 15
LINE(19,y)-(319,y),4
NEXT
LINE(350,150)-(350,177),4
LINE(350,177)-(594,177),4
LINE(594,177)-(594,150),4
LINE(594,150)-(350,150),4
initializebored:
bored(1,1)=3:bored(10,1)=3
bored(2,1)=2:bored(9,1)=2
bored(3,1)=4:bored(8,1)=4
bored(4,1)=5:bored(7,1)=5
bored(5,1)=7:bored(6,1)=6
bored(1,10)=-3:bored(10,10)=-3
bored(2,10)=-2:bored(9,10)=-2
bored(3,10)=-4:bored(8,10)=-4
bored(4,10)=-5:bored(7,10)=-5
bored(5,10)=-7:bored(6,10)=-6
FOR t=1 TO 10
bored(t,2)=1
bored(t,9)=-1
NEXT
FOR y=3 TO 8
FOR x=1 TO 10
bored(x,y)=10
NEXT
NEXT
GOSUB filldabored
play:
pl=1:rchips=0:bchips=0
winner=0
newturn:
pl=-pl
turn1:
ON ERROR GOTO 0
tutor=0
LOCATE 22,7
COLOR 2
PRINT"Chips :";bchips
LOCATE 22,28
COLOR 3
PRINT"Chips :";rchips
GOSUB cleardabox
COLOR -2*(pl=1)-3*(pl=-1)
LOCATE 20,45
IF pl=1 THEN PRINT"Blue's turn."
IF pl=-1 THEN PRINT"Red's turn."
turn2:
didit=0
GOSUB checkmouse
IF but2<>0 THEN GOSUB move:IF didit=0 THEN turn2
IF but1=24 THEN GOSUB buy:IF didit=0 THEN turn1
IF but1=22 THEN GOSUB quit:GOTO turn1
IF but1=30 THEN GOSUB checknew:IF restart=0 THEN turn1
IF but1=31 THEN GOSUB tutor:GOTO turn1
IF but1=21 THEN savegame
IF but1=23 THEN loadgame
IF restart=1 THEN restart=0:GOTO initializebored
IF winner<>0 THEN gameover
IF didit=1 THEN newturn
GOTO turn2
savegame:
GOSUB cleardabox
COLOR 1
LOCATE 20,45
PRINT"Click Save again to initiate"
LOCATE 21,45
PRINT"save game sequence."
GOSUB checkmouse
IF but1<>21 THEN turn1
GOSUB cleardabox
LOCATE 20,45
PRINT"Enter device and directory:"
LOCATE 21,45
GOSUB getstring
IF s$="" THEN turn1
d$=s$
GOSUB cleardabox
LOCATE 20,45
PRINT"Enter filename:"
LOCATE 21,45
GOSUB getstring
IF s$="" THEN turn1
GOSUB cleardabox
LOCATE 20,45
PRINT"Saving..."
ON ERROR GOTO fileerror
OPEN d$+s$+".tac" FOR OUTPUT AS 1
PRINT#1,rchips
PRINT#1,bchips
PRINT#1,pl
FOR y=1 TO 10
FOR x=1 TO 10
PRINT#1,bored(x,y)
NEXT
NEXT
CLOSE 1
ON ERROR GOTO 0
GOTO turn1
loadgame:
GOSUB cleardabox
COLOR 1
LOCATE 20,45
PRINT"Click Load again to initiate"
LOCATE 21,45
PRINT"load game sequence."
GOSUB checkmouse
IF but1<>23 THEN turn1
GOSUB cleardabox
LOCATE 20,45
PRINT"Enter device and directory:"
LOCATE 21,45
GOSUB getstring
IF s$="" THEN turn1
d$=s$
GOSUB cleardabox
LOCATE 20,45
PRINT"Enter filename:"
LOCATE 21,45
GOSUB getstring
IF s$="" THEN turn1
GOSUB cleardabox
LOCATE 20,45
PRINT"Loading..."
ON ERROR GOTO fileerror
OPEN d$+s$+".tac" FOR INPUT AS 1
INPUT#1,rchips
INPUT#1,bchips
INPUT#1,pl
FOR y=1 TO 10
FOR x=1 TO 10
INPUT#1,bored(x,y)
NEXT
NEXT
CLOSE 1
ON ERROR GOTO 0
GOSUB filldabored
GOTO turn1
fileerror:
WINDOW 2
GOSUB cleardabox
LOCATE 20,45
IF ERR=53 THEN
PRINT"File or directory not found."
ELSEIF ERR=13 THEN
PRINT"Not a Tactrix! save file."
ELSEIF ERR=55 THEN
PRINT"File already being used."
ELSEIF ERR=49 THEN
PRINT"Disk not found."
ELSEIF ERR=74 THEN
PRINT"Not a mounted volume."
ELSEIF ERR=70 THEN
PRINT"Disk is write protected."
ELSEIF ERR=61 THEN
PRINT"Disk is full."
ELSE
PRINT"error #";ERR
END IF
LOCATE 21,45
PRINT"Click anything to Continue."
GOSUB checkmouse
RESUME turn1
buy:
GOSUB cleardabox
oops=0
LOCATE 20,45
PRINT"Select a piece to buy."
LOCATE 21,45
GOSUB checkmouse
IF but1<25 OR but1>29 THEN RETURN
buypees=but1-24:cost=(6-buypees)*3
IF pl=1 THEN
IF bchips<cost THEN
GOSUB cleardabox
LOCATE 20,45
PRINT"You can't afford it."
LOCATE 21,45
PRINT peesname$(buypees+2);"s cost ";
PRINT RIGHT$(STR$(cost),LEN(STR$(cost))-1);"."
oops=1
END IF
END IF
IF pl=-1 THEN
IF rchips<cost THEN
GOSUB cleardabox
LOCATE 20,45
PRINT"You can't afford it."
LOCATE 21,45
PRINT peesname$(buypees+2);"s cost ";
PRINT RIGHT$(STR$(cost),LEN(STR$(cost))-1);"."
oops=1
END IF
END IF
IF oops=1 THEN
LOCATE 22,45
COLOR 1
PRINT"Click anything to continue."
GOSUB checkmouse
END IF
IF oops=0 THEN
GOSUB cleardabox
LOCATE 20,45
PRINT"Place piece adjacent"
LOCATE 21,45
PRINT"to your regeneroid."
GOSUB checkmouse
IF but2=0 THEN oops=1
IF oops=0 THEN
x=but1:y=but2-10
oops=1
IF bored(x-1,y-1)=6*pl THEN oops=0
IF bored(x,y-1)=6*pl THEN oops=0
IF bored(x+1,y-1)=6*pl THEN oops=0
IF bored(x-1,y)=6*pl THEN oops=0
IF bored(x+1,y)=6*pl THEN oops=0
IF bored(x-1,y+1)=6*pl THEN oops=0
IF bored(x,y+1)=6*pl THEN oops=0
IF bored(x+1,y+1)=6*pl THEN oops=0
IF oops=0 THEN
IF bored(x,y)=10 THEN
bchips=bchips-1*(pl=1)
rchips=rchips-1*(pl=-1)
END IF
putx=x:puty=y:putpees=6-buypees:putowner=pl
GOSUB putpees
didit=1
bchips=bchips+cost*(pl=1)
rchips=rchips+cost*(pl=-1)
END IF
END IF
END IF
RETURN
gameover:
LOCATE 22,7
COLOR 2
PRINT"Chips :";bchips
LOCATE 22,28
COLOR 3
PRINT"Chips :";rchips
GOSUB cleardabox
COLOR -2*(pl=1)-3*(pl=-1)
LOCATE 20,45
IF pl=1 THEN PRINT"Blue wins!!"
IF pl=-1 THEN PRINT"Red wins!!"
COLOR 1
LOCATE 21,45
PRINT"Click New for a new game."
LOCATE 22,45
PRINT"Click Quit to exit."
gameover1:
GOSUB checkmouse
IF but1=22 THEN halt
IF but1=30 THEN
GOSUB cleardabox
LOCATE 20,45
PRINT"Resetting board..."
restart=1
END IF
IF restart=1 THEN restart=0:GOTO initializebored
GOTO gameover1
move:
GOSUB cleardabox
COLOR -2*(pl=1)-3*(pl=-1)
LOCATE 20,45
oops=0
x=but1:y=but2-10
pees=ABS(bored(x,y))
owner=SGN(bored(x,y))
IF owner<>pl AND pees<>0 AND pees<>10 THEN
PRINT"Not your piece."
oops=1
END IF
IF pees=10 THEN PRINT"You can't move a chip.":oops=1
IF pees=0 THEN PRINT"Not a piece.":oops=1
IF oops=1 THEN RETURN
IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite
IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
PRINT "Move where?"
LOCATE 21,45
ox=x:oy=y:opees=pees:oowner=owner
GOSUB checkmouse
IF but2=0 THEN
IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite
IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
PRINT"Cancelling selection."
oops=1
END IF
IF oops=1 THEN RETURN
x=but1:y=but2-10
pees=ABS(bored(x,y))
owner=SGN(bored(x,y))
GOSUB checklegal
IF legal=0 THEN
PRINT"Illegal move."
IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite
IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite
oops=1
END IF
IF oops=1 THEN RETURN
IF oowner=owner AND pees<>10 THEN
PRINT "You can't take your own piece."
IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite
IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite
oops=1
END IF
IF oops=1 THEN RETURN
didit=1
PUT(-7+ox*30,-3+15*oy),blank,PSET
bored(ox,oy)=0
IF pees=7 THEN winner=-owner
putowner=oowner:putpees=opees
putx=x:puty=y:GOSUB putpees
IF opees=1 THEN
IF oowner=1 AND y=10 THEN
FOR t=1 TO 20
PUT(-7+x*30,-3+15*y),bhilite
FOR t2=1 TO 200:NEXT
NEXT
bchips=bchips+25
PUT(-7+x*30,-3+15*y),blank,PSET
bored(x,y)=0
GOSUB cleardabox
LOCATE 20,45
PRINT"Cool! 25 Chip bonus!!"
LOCATE 21,45
COLOR 1
PRINT"Click anything to continue."
GOSUB checkmouse
END IF
IF oowner=-1 AND y=1 THEN
FOR t=1 TO 20
PUT(-7+x*30,-3+15*y),rhilite
FOR t2=1 TO 200:NEXT
NEXT
rchips=rchips+25
PUT(-7+x*30,-3+15*y),blank,PSET
bored(x,y)=0
GOSUB cleardabox
LOCATE 20,45
PRINT"Cool! 25 Chip bonus!!"
LOCATE 21,45
COLOR 1
PRINT"Click anything to continue."
GOSUB checkmouse
END IF
END IF
IF pees=10 THEN
bchips=bchips-1*(pl=1)
rchips=rchips-1*(pl=-1)
END IF
RETURN
putpees:
IF putowner=1 THEN
IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),bjerk,PSET
IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),bjumpnar,PSET
IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),bwrapnoid,PSET
IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),bverticon,PSET
IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),bdiaganoid,PSET
IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),bregeneroid,PSET
IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),bking,PSET
END IF
IF putowner=-1 THEN
IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),rjerk,PSET
IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),rjumpnar,PSET
IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),rwrapnoid,PSET
IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),rverticon,PSET
IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),rdiaganoid,PSET
IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),rregeneroid,PSET
IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),rking,PSET
END IF
bored(putx,puty)=putpees*putowner
RETURN
tutor:
tutor=1
oops=0
GOSUB cleardabox
COLOR 8
LOCATE 20,45
PRINT"Select piece."
GOSUB checkmouse
IF but2=0 THEN RETURN
ox=but1:oy=but2-10
opees=ABS(bored(ox,oy)):oowner=SGN(bored(ox,oy))
GOSUB cleardabox
LOCATE 20,45
PRINT"Please wait..."
LOCATE 21,45
PRINT"Finding all legal moves..."
LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),8
LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),8
LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),8
LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),8
LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),8
LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),8
FOR y=1 TO 10
FOR x=1 TO 10
IF x<>ox OR y<>oy THEN
pees=ABS(bored(x,y)):owner=SGN(bored(x,y))
GOSUB checklegal
IF legal=1 THEN
oops=0
IF oowner=owner AND pees<>10 THEN oops=1
IF oops=0 THEN
IF oowner=1 THEN PUT(-7+x*30,-3+15*y),bhilite
IF oowner=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
END IF
END IF
END IF
NEXT
NEXT
GOSUB cleardabox
LOCATE 20,45
PRINT peesname$(8-opees);"."
LOCATE 21,45
IF opees<>6 AND opees<>7 THEN PRINT"Cost :";3*opees
IF opees=6 THEN PRINT"Cannot be replaced."
IF opees=7 THEN PRINT"Game Over if lost."
LOCATE 22,45
PRINT"Click anything to continue.";
GOSUB checkmouse
GOSUB cleardabox
LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),0
LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),0
LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),0
LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),0
LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),0
LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),0
LOCATE 20,45
PRINT"Please wait..."
LOCATE 21,45
PRINT"Resetting board..."
GOSUB filldabored
RETURN
checklegal:
legal=0
IF opees=1 THEN GOSUB checkjerk
IF opees=2 THEN GOSUB checkjumpnar
IF opees=3 THEN GOSUB checkwrapnoid
IF opees=4 THEN GOSUB checkverticon
IF opees=5 THEN GOSUB checkdiaganoid
IF opees=6 THEN GOSUB checkregeneroid
IF opees=7 THEN GOSUB checkking
RETURN
checkjerk:
IF ox=x AND y=oy+oowner THEN
IF pees=10 OR pees=0 THEN legal=1
END IF
IF (ox=x AND(oy=y+2 OR oy=y-2))OR(oy=y AND(ox=x+2 OR ox=x-2)) THEN
IF pees<>10 AND pees<>0 THEN legal=1
END IF
RETURN
checkjumpnar:
dx=ABS(ox-x):dy=ABS(oy-y)
IF (dx=1 AND dy=2)OR(dx=2 AND dy=1) THEN legal=1
RETURN
checkwrapnoid:
dx=ABS(ox-x):dy=ABS(oy-y)
oops=0
IF dx=0 AND dy=1 THEN legal=1
IF dx=1 AND dy=1 THEN legal=1
IF dy=0 THEN
dx=x-ox
IF dx>5 AND dx<9 THEN
t=ox
dx=-1
t=t+2*dx:IF t<1 THEN t=t+10
WHILE t<>x
IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
t=t+dx
IF t<1 THEN t=t+10
WEND
IF oops=0 THEN legal=1
END IF
IF dx>-9 AND dx<-5 THEN
t=ox
dx=1
t=t+2*dx:IF t>10 THEN t=t-10
WHILE t<>x
IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
t=t+dx
IF t>10 THEN t=t-10
WEND
IF oops=0 THEN legal=1
END IF
IF dx>1 AND dx<5 THEN
t=ox
dx=1
t=t+2*dx
WHILE t<>x
IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
t=t+dx
WEND
IF oops=0 THEN legal=1
END IF
IF dx>-5 AND dx<-1 THEN
t=ox
dx=-1
t=t+2*dx:IF t<1 THEN t=t+10
WHILE t<>x
IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
t=t+dx
WEND
IF oops=0 THEN legal=1
END IF
END IF
RETURN
checkverticon:
dx=ABS(ox-x):dy=ABS(oy-y)
IF dx+dy=0 THEN RETURN
oops=0
IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN
legal=1
ELSE
IF x=ox THEN
t=oy
dy=SGN(y-oy)
t=t+dy
WHILE t<>y
IF bored(x,t)<>0 AND bored(x,t)<>10 THEN oops=1
t=t+dy
WEND
IF oops=0 THEN legal=1
END IF
END IF
RETURN
checkdiaganoid:
dx=ABS(ox-x):dy=ABS(oy-y)
IF dx+dy=0 THEN RETURN
oops=0
IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN
legal=1
ELSE
IF dx<>dy THEN
oops=1
ELSE
dx=SGN(x-ox):dy=SGN(y-oy)
t=ox:t1=oy
t=t+dx:t1=t1+dy
WHILE t<>x
IF bored(t,t1)<>0 AND bored(t,t1)<>10 THEN oops=1
t=t+dx:t1=t1+dy
WEND
IF oops=0 THEN legal=1
END IF
END IF
RETURN
checkregeneroid:
dx=ABS(ox-x):dy=ABS(oy-y)
IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN
IF oowner=1 AND y<6 THEN legal=1
IF oowner=-1 AND y>5 THEN legal=1
END IF
RETURN
checkking:
dx=ABS(ox-x):dy=ABS(oy-y)
IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN legal=1
RETURN
halt:
SCREEN CLOSE 2
END
quit:
GOSUB cleardabox
COLOR 1
LOCATE 20,45
PRINT"Click Quit again to exit."
GOSUB checkmouse
IF but1=22 THEN halt
RETURN
checknew:
GOSUB cleardabox
COLOR 1
LOCATE 20,45
PRINT"Click New again to restart."
GOSUB checkmouse
IF but1=30 THEN
restart=1
LOCATE 21,45
PRINT"Resetting board..."
END IF
RETURN
cleardabox:
LOCATE 20,45
PRINT " "
LOCATE 21,45
PRINT " "
LOCATE 22,45
PRINT " "
RETURN
filldabored:
FOR y=1 TO 10
FOR x=1 TO 10
pees=ABS(bored(x,y))
owner=SGN(bored(x,y))
IF pees=10 THEN PUT(-7+x*30,-3+15*y),chip,PSET
IF pees=0 THEN PUT(-7+x*30,-3+15*y),blank,PSET
IF owner=1 THEN
IF pees=1 THEN PUT(-7+x*30,-3+15*y),bjerk,PSET
IF pees=2 THEN PUT(-7+x*30,-3+15*y),bjumpnar,PSET
IF pees=3 THEN PUT(-7+x*30,-3+15*y),bwrapnoid,PSET
IF pees=4 THEN PUT(-7+x*30,-3+15*y),bverticon,PSET
IF pees=5 THEN PUT(-7+x*30,-3+15*y),bdiaganoid,PSET
IF pees=6 THEN PUT(-7+x*30,-3+15*y),bregeneroid,PSET
IF pees=7 THEN PUT(-7+x*30,-3+15*y),bking,PSET
END IF
IF owner=-1 THEN
IF pees=1 THEN PUT(-7+x*30,-3+15*y),rjerk,PSET
IF pees=2 THEN PUT(-7+x*30,-3+15*y),rjumpnar,PSET
IF pees=3 THEN PUT(-7+x*30,-3+15*y),rwrapnoid,PSET
IF pees=4 THEN PUT(-7+x*30,-3+15*y),rverticon,PSET
IF pees=5 THEN PUT(-7+x*30,-3+15*y),rdiaganoid,PSET
IF pees=6 THEN PUT(-7+x*30,-3+15*y),rregeneroid,PSET
IF pees=7 THEN PUT(-7+x*30,-3+15*y),rking,PSET
END IF
NEXT
NEXT
RETURN
definedapeeses:
CLS
GET (0,0)-(23,11),blank
LINE(0,0)-(0,11),2
LINE(0,11)-(23,11),2
LINE(23,11)-(23,0),2
LINE(23,0)-(0,0),2
PAINT(10,10),2
GET (0,0)-(23,11),bhilite
LINE(0,0)-(0,11),3
LINE(0,11)-(23,11),3
LINE(23,11)-(23,0),3
LINE(23,0)-(0,0),3
PAINT(10,10),3
GET (0,0)-(23,11),rhilite
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bjerk
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bjumpnar
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bwrapnoid
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bverticon
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bdiaganoid
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bking
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*2:PSET(x+1,y),a*2
NEXT x,y
GET (0,0)-(23,11),bregeneroid
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a:PSET(x+1,y),a
NEXT x,y
GET (0,0)-(23,11),chip
RESTORE
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rjerk
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rjumpnar
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rwrapnoid
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rverticon
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rdiaganoid
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rking
FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
READ a
PSET(x,y),a*3:PSET(x+1,y),a*3
NEXT x,y
GET (0,0)-(23,11),rregeneroid
CLS
RETURN
definedabuttons:
t=0
FOR x=20 TO 320 STEP 30
t=t+1
butx1(t)=x+2:butx2(t)=x+28
buty1(t)=11:buty2(t)=159
NEXT
t=t-1
FOR y=10 TO 145 STEP 15
t=t+1
butx1(t)=21:butx2(t)=318
buty1(t)=y+1:buty2(t)=y+14
NEXT
LINE(0,0)-(14,0),5
LINE(14,0)-(14,15),5
LINE(14,15)-(0,15),5
LINE(0,15)-(0,0),5
PAINT(10,10),5
GET (0,0)-(14,15),buttonplate
LOCATE 5,65
COLOR 5
PRINT"Save"
PUT(65*8-23,5*8-12),buttonplate
PUT(65*8-8,5*8-12),buttonplate
PUT(65*8+7,5*8-12),buttonplate
PUT(65*8+22,5*8-12),buttonplate
t=21
butx1(t)=65*8-23:butx2(t)=65*8+37
buty1(t)=5*8-12:buty2(t)=5*8+3
LINE(0,0)-(14,0),3
LINE(14,0)-(14,15),3
LINE(14,15)-(0,15),3
LINE(0,15)-(0,0),3
PAINT(10,10),3
GET (0,0)-(14,15),buttonplate
LOCATE 11,65
COLOR 3
PRINT"Quit"
PUT(65*8-23,11*8-12),buttonplate
PUT(65*8-8,11*8-12),buttonplate
PUT(65*8+7,11*8-12),buttonplate
PUT(65*8+22,11*8-12),buttonplate
t=22
butx1(t)=65*8-23:butx2(t)=65*8+37
buty1(t)=11*8-12:buty2(t)=11*8+3
LINE(0,0)-(14,0),2
LINE(14,0)-(14,15),2
LINE(14,15)-(0,15),2
LINE(0,15)-(0,0),2
PAINT(10,10),2
GET (0,0)-(14,15),buttonplate
LOCATE 2,65
COLOR 2
PRINT"Load"
PUT(65*8-23,2*8-12),buttonplate
PUT(65*8-8,2*8-12),buttonplate
PUT(65*8+7,2*8-12),buttonplate
PUT(65*8+22,2*8-12),buttonplate
t=23
butx1(t)=65*8-23:butx2(t)=65*8+37
buty1(t)=2*8-12:buty2(t)=2*8+3
LINE(0,0)-(14,0),8
LINE(14,0)-(14,15),8
LINE(14,15)-(0,15),8
LINE(0,15)-(0,0),8
PAINT(10,10),8
GET (0,0)-(14,15),buttonplate
LOCATE 2,50
COLOR 8
PRINT"Buy"
SCROLL (377,2*8-12)-(437,2*8+3),4,0
PUT(50*8-23,2*8-12),buttonplate
PUT(50*8-8,2*8-12),buttonplate
PUT(50*8+7,2*8-12),buttonplate
PUT(50*8+22,2*8-12),buttonplate
t=24
butx1(t)=50*8-23:butx2(t)=50*8+37
buty1(t)=2*8-12:buty2(t)=2*8+3
LOCATE 17,64
PRINT"Tutor"
SCROLL (65*8-23,17*8-12)-(65*8+37,17*8+3),4,0
PUT(65*8-23,17*8-12),buttonplate
PUT(65*8-8,17*8-12),buttonplate
PUT(65*8+7,17*8-12),buttonplate
PUT(65*8+22,17*8-12),buttonplate
t=31
butx1(t)=65*8-23:butx2(t)=65*8+37
buty1(t)=17*8-12:buty2(t)=17*8+3
LINE(0,0)-(14,0),6
LINE(14,0)-(14,15),6
LINE(14,15)-(0,15),6
LINE(0,15)-(0,0),6
PAINT(10,10),6
GET (0,0)-(14,15),buttonplate
LOCATE 8,65
COLOR 6
PRINT"New"
SCROLL (65*8-23,8*8-12)-(65*8+37,8*8+3),4,0
PUT(65*8-23,8*8-12),buttonplate
PUT(65*8-8,8*8-12),buttonplate
PUT(65*8+7,8*8-12),buttonplate
PUT(65*8+22,8*8-12),buttonplate
t=30
butx1(t)=65*8-23:butx2(t)=65*8+37
buty1(t)=8*8-12:buty2(t)=8*8+3
peesbuttons:
LINE(0,0)-(14,0),7
LINE(14,0)-(14,15),7
LINE(14,15)-(0,15),7
LINE(0,15)-(0,0),7
PAINT(10,10),7
GET (0,0)-(14,15),buttonplate
LOCATE 5,47
COLOR 7
PRINT"Diaganoid"
SCROLL(50*8-38,5*8-12)-(50*8+52,5*8+3),4,0
PUT(50*8-38,5*8-12),buttonplate
PUT(50*8-23,5*8-12),buttonplate
PUT(50*8-8,5*8-12),buttonplate
PUT(50*8+7,5*8-12),buttonplate
PUT(50*8+22,5*8-12),buttonplate
PUT(50*8+37,5*8-12),buttonplate
t=25
butx1(t)=50*8-38:butx2(t)=50*8+51
buty1(t)=5*8-12:buty2(t)=5*8+3
LOCATE 8,48
PRINT"Verticon"
PUT(50*8-38,8*8-12),buttonplate
PUT(50*8-23,8*8-12),buttonplate
PUT(50*8-8,8*8-12),buttonplate
PUT(50*8+7,8*8-12),buttonplate
PUT(50*8+22,8*8-12),buttonplate
PUT(50*8+37,8*8-12),buttonplate
t=26
butx1(t)=50*8-38:butx2(t)=50*8+51
buty1(t)=8*8-12:buty2(t)=8*8+3
LOCATE 11,48
PRINT"Wrapnoid"
PUT(50*8-38,11*8-12),buttonplate
PUT(50*8-23,11*8-12),buttonplate
PUT(50*8-8,11*8-12),buttonplate
PUT(50*8+7,11*8-12),buttonplate
PUT(50*8+22,11*8-12),buttonplate
PUT(50*8+37,11*8-12),buttonplate
t=27
butx1(t)=50*8-38:butx2(t)=50*8+51
buty1(t)=11*8-12:buty2(t)=11*8+3
LOCATE 14,48
PRINT"Jumpnar"
SCROLL(50*8-38,14*8-12)-(50*8+52,14*8+3),4,0
PUT(50*8-38,14*8-12),buttonplate
PUT(50*8-23,14*8-12),buttonplate
PUT(50*8-8,14*8-12),buttonplate
PUT(50*8+7,14*8-12),buttonplate
PUT(50*8+22,14*8-12),buttonplate
PUT(50*8+37,14*8-12),buttonplate
t=28
butx1(t)=50*8-38:butx2(t)=50*8+51
buty1(t)=14*8-12:buty2(t)=14*8+3
LOCATE 17,50
PRINT"Jerk"
PUT(50*8-38,17*8-12),buttonplate
PUT(50*8-23,17*8-12),buttonplate
PUT(50*8-8,17*8-12),buttonplate
PUT(50*8+7,17*8-12),buttonplate
PUT(50*8+22,17*8-12),buttonplate
PUT(50*8+37,17*8-12),buttonplate
t=29
butx1(t)=50*8-38:butx2(t)=50*8+51
buty1(t)=17*8-12:buty2(t)=17*8+3
PUT(0,0),buttonplate
ERASE buttonplate
RETURN
loop:
GOTO loop
getstring:
GOSUB holdit
s$=""
PRINT"<";
cx=POS(0)-1
cy=CSRLIN
gs1:
a$=INKEY$:IF a$=""THEN gs1
IF ASC(a$)=13 THEN PRINT:RETURN
IF ASC(a$)=8 AND s$<>""THEN s$=LEFT$(s$,LEN(s$)-1):GOTO gs2
IF ASC(a$)=8 THEN gs1
IF LEN(s$)=28 THEN BEEP:GOTO gs1
s$=s$+a$
gs2:
LOCATE cy,cx:PRINT s$"< ";
GOTO gs1
holdit:
FOR t=1 TO 500:a$=INKEY$:NEXT:a$="":RETURN
checkmouse:
IF MOUSE(0)>-1 THEN checkmouse
WHILE MOUSE(0)<0
WEND
mx=MOUSE(1):my=MOUSE(2)
GOSUB whichbut
RETURN
whichbut:
but1=0:but2=0
FOR t=0 TO 31
IF mx>=butx1(t) AND mx<=butx2(t) THEN
IF my>=buty1(t) AND my<=buty2(t) THEN
IF but1<>0 THEN but2=t
IF but1=0 THEN but1=t
END IF
END IF
NEXT
RETURN
peesdata:
jerk:
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
jumpnar:
DATA 0,0,0,1,1,0,0,1,1,0,0,0
DATA 0,0,0,1,1,0,0,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 1,1,0,0,0,0,0,0,0,0,1,1
DATA 1,1,0,0,0,1,1,0,0,0,1,1
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 1,1,0,0,0,1,1,0,0,0,1,1
DATA 1,1,0,0,0,0,0,0,0,0,1,1
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,0,0,1,1,0,0,0
DATA 0,0,0,1,1,0,0,1,1,0,0,0
wrapnoid:
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,0,0,0,0,0,1,0,0
DATA 0,1,0,0,0,0,0,0,0,0,1,0
DATA 1,0,0,0,0,1,1,0,0,0,0,1
DATA 1,0,0,0,1,1,1,1,0,0,0,1
DATA 1,0,0,0,1,1,1,1,0,0,0,1
DATA 1,0,0,0,0,1,1,0,0,0,0,1
DATA 0,1,0,0,0,0,0,0,0,0,1,0
DATA 0,0,1,0,0,0,0,0,0,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
verticon:
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
diaganoid:
DATA 1,1,0,0,0,0,0,0,0,0,1,1
DATA 1,1,1,0,0,0,0,0,0,1,1,1
DATA 0,1,1,1,0,0,0,0,1,1,1,0
DATA 0,0,1,1,1,0,0,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,1,1,1,0,0,1,1,1,0,0
DATA 0,1,1,1,0,0,0,0,1,1,1,0
DATA 1,1,1,0,0,0,0,0,0,1,1,1
DATA 1,1,0,0,0,0,0,0,0,0,1,1
king:
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,0,0,0,0,1,0,0,0
DATA 1,0,0,1,0,0,0,0,1,0,0,1
DATA 0,1,0,0,1,0,0,1,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0
DATA 0,1,0,0,1,1,1,1,0,0,1,0
DATA 0,1,1,1,0,0,0,0,1,1,1,0
DATA 1,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,1
DATA 0,1,1,0,0,0,0,0,0,1,1,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
regeneroid:
DATA 0,0,0,1,1,1,1,1,1,0,0,0
DATA 0,0,1,0,0,0,0,0,0,1,0,0
DATA 0,1,0,0,1,1,1,1,0,0,1,0
DATA 1,0,0,1,0,0,0,0,1,0,0,1
DATA 1,0,1,0,0,1,1,0,0,1,0,1
DATA 1,0,1,0,1,0,0,1,0,1,0,1
DATA 1,0,1,0,1,0,0,1,0,1,0,1
DATA 1,0,1,0,0,1,1,0,0,1,0,1
DATA 1,0,0,1,0,0,0,0,1,0,0,1
DATA 0,1,0,0,1,1,1,1,0,0,1,0
DATA 0,0,1,0,0,0,0,0,0,1,0,0
DATA 0,0,0,1,1,1,1,1,1,0,0,0
chip:
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0